import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 石方旭
 * Date: 2022-03-08
 * Time: 21:11
 */
//创建一个类
class Person{
   //定义成员变量，定义在方法外边类的里面叫做成员变量
    //成员变量在对象里面，实力成员变量在对象里面，静态成员变量不在对象里面
    String name;
    int age;
    boolean bool;
    //定义方法
    public static int size;//静态数据成员   只有一份
    //实力成员方法
    public void eat() {
      int val =0;
       System.out.println("eat<>");
   }
   public static void sleep() {
       System.out.println("sleep<>");

   }
}
public class TestDomo {

    public void eat() {
        int val =0;
        System.out.println("eat<>");
    }
    public static void sleep() {
        System.out.println("sleep<>");
        sleep();
        TestDomo testdomo =new TestDomo();
        testdomo.eat();//访问非静态成员只能利用对象的引用
    }
    public static void main(String[] args) {
        Person person =new Person();//实例化一个对象
        //类是一个引用，new一个person是在堆上
        //如何访问对象中的实例化成员变量，通过对象的引用  利用new关键字
        // （被类修饰的）变量名.成员变量
        person.name="shifx";
        person.age =12;
        person.eat();//对象的引用   实例化成员
        Person.sleep();//利用类名    静态成员
        System.out.println(person.age);
        System.out.println(person.name);
        //实力成员没有初始化默认为对应的0值
        //引用类型---null
        //简单类型---0
        //char--->\u0000
        //boolean-->false
        System.out.println(person.bool);
        //System.out.println(person.size);//静态成员变量不属于对象，不在对象里面
        //如何访问静态成员变量，size是静态成员变量属于类-->类名。静态成员变量
        System.out.println(Person.size);
        //静态变量静态方法不需要你new一个对象，我们需要用类名+文件名进行访问
        //静态变量在方法区只有一份
        //在静态方法内部不能够访问到非静态成员
        //静态的有限制   非静态没有限制
        //如果在静态方法内部，想访问非静态成员，我们需要new一下(也就是对象的引用)
    }
}
